package org.chen.controller;

import lombok.RequiredArgsConstructor;
import org.chen.dto.RateLimiterConfigDTO;
import org.chen.response.R;
import org.chen.service.DistributedRateLimiter;
import org.chen.service.impl.RateLimiterConfigServiceImpl;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/rate-limiter")
@RequiredArgsConstructor
public class RateLimiterConfigController {
    
    private final RateLimiterConfigServiceImpl configService;
    private final DistributedRateLimiter rateLimiter;

    @GetMapping("/config")
    public R<RateLimiterConfigDTO> getConfig() {
        return R.success(configService.getConfig());
    }

    @PutMapping("/config")
    public R<Void> updateConfig(@RequestBody RateLimiterConfigDTO config) {
        // 更新配置
        configService.updateConfig(config);
        // 更新限流器
        rateLimiter.updateConfig(config);
        return R.success();
    }
}